﻿using System.ComponentModel;

namespace RotovapPlatform.Domain.Business.Machine.Enums
{
	/// <summary>
	/// 设备相关枚举类型
	/// </summary>
	public class DeviceEnums
	{

		/// <summary>
		/// 设备模式
		/// </summary>
		public enum DeviceMode
		{
			/// <summary>
			/// 维护模式
			/// </summary>
			[Description("维护模式")]
			Maintenance = 0,

			/// <summary>
			/// 手动模式
			/// </summary>
			[Description("手动模式")]
			Manual = 1,

			/// <summary>
			/// 单机自动模式
			/// </summary>
			[Description("单机自动模式")]
			SingleMachineAutomatic = 2,

			/// <summary>
			/// 联机自动模式
			/// </summary>
			[Description("联机自动模式")]
			OnlineAutomatic = 3,

		}

		/// <summary>
		/// 设备状态
		/// </summary>
		public enum DeviceStatus
		{
			/// <summary>
			/// 空闲
			/// </summary>
			[Description("空闲")]
			Idle = 0,

			/// <summary>
			/// 运行中
			/// </summary>
			[Description("运行中")]
			Running = 1,

			/// <summary>
			/// 暂停
			/// </summary>
			[Description("暂停")]
			Paused = 2,

			/// <summary>
			/// 错误
			/// </summary>
			[Description("错误")]
			Error = 3,

			/// <summary>
			/// 紧急停止
			/// </summary>
			[Description("紧急停止")]
			EmergencyStopped = 4,

			/// <summary>
			/// 初始化中
			/// </summary>
			[Description("初始化中")]
			Initializing = 5,

			/// <summary>
			/// 待机
			/// </summary>
			[Description("待机")]
			Standby = 6,

			/// <summary>
			/// 维护中
			/// </summary>
			[Description("维护中")]
			InMaintenance = 7,

		}


		/// <summary>
		/// 运行主步骤
		/// </summary>
		public enum MainStep
		{
			/// <summary>
			/// 无步骤
			/// </summary>
			[Description("无步骤")]
			None = 0,

			/// <summary>
			/// 物料准备
			/// </summary>
			[Description("物料准备")]
			MaterialPreparation = 1,

			/// <summary>
			/// 旋蒸瓶对接
			/// </summary>
			[Description("旋蒸瓶对接")]
			FlaskDocking = 2,

			/// <summary>
			/// 物料输送
			/// </summary>
			[Description("物料输送")]
			MaterialTransfer = 3,

			/// <summary>
			/// 旋蒸过程
			/// </summary>
			[Description("旋蒸过程")]
			RotovapProcess = 4,

			/// <summary>
			/// 产物收集
			/// </summary>
			[Description("产物收集")]
			ProductCollection = 5,

			/// <summary>
			/// 残留液处理
			/// </summary>
			[Description("残留液处理")]
			ResidueHandling = 6,

			/// <summary>
			/// 系统清洗
			/// </summary>
			[Description("系统清洗")]
			SystemCleaning = 7,

			/// <summary>
			/// 实验完成
			/// </summary>
			[Description("实验完成")]
			ExperimentComplete = 8
		}

		/// <summary>
		/// 物料准备分步骤
		/// </summary>
		public enum MaterialPreparationSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 扫描物料条码
			/// </summary>
			[Description("扫描物料条码")]
			ScanBarcode = 1,

			/// <summary>
			/// 验证物料
			/// </summary>
			[Description("验证物料")]
			ValidateMaterial = 2,

			/// <summary>
			/// 放置物料
			/// </summary>
			[Description("放置物料")]
			PlaceMaterial = 3,

			/// <summary>
			/// 完成物料准备
			/// </summary>
			[Description("完成物料准备")]
			Complete = 4
		}

		/// <summary>
		/// 旋蒸瓶对接分步骤
		/// </summary>
		public enum FlaskDockingSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 取旋蒸瓶
			/// </summary>
			[Description("取旋蒸瓶")]
			PickFlask = 1,

			/// <summary>
			/// 安装旋蒸瓶
			/// </summary>
			[Description("安装旋蒸瓶")]
			InstallFlask = 2,

			/// <summary>
			/// 锁定旋蒸瓶
			/// </summary>
			[Description("锁定旋蒸瓶")]
			LockFlask = 3,

			/// <summary>
			/// 完成旋蒸瓶对接
			/// </summary>
			[Description("完成旋蒸瓶对接")]
			Complete = 4
		}

		/// <summary>
		/// 物料输送分步骤
		/// </summary>
		public enum MaterialTransferSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 取物料瓶
			/// </summary>
			[Description("取物料瓶")]
			PickMaterialBottle = 1,

			/// <summary>
			/// 连接输送管路
			/// </summary>
			[Description("连接输送管路")]
			ConnectTransferTube = 2,

			/// <summary>
			/// 输送物料
			/// </summary>
			[Description("输送物料")]
			TransferMaterial = 3,

			/// <summary>
			/// 断开输送管路
			/// </summary>
			[Description("断开输送管路")]
			DisconnectTransferTube = 4,

			/// <summary>
			/// 放回物料瓶
			/// </summary>
			[Description("放回物料瓶")]
			ReturnMaterialBottle = 5,

			/// <summary>
			/// 完成物料输送
			/// </summary>
			[Description("完成物料输送")]
			Complete = 6
		}

		/// <summary>
		/// 旋蒸过程分步骤
		/// </summary>
		public enum RotovapProcessSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 设置参数
			/// </summary>
			[Description("设置参数")]
			SetParameters = 1,

			/// <summary>
			/// 预热
			/// </summary>
			[Description("预热")]
			Preheat = 2,

			/// <summary>
			/// 启动旋转
			/// </summary>
			[Description("启动旋转")]
			StartRotation = 3,

			/// <summary>
			/// 抽真空
			/// </summary>
			[Description("抽真空")]
			Vacuum = 4,

			/// <summary>
			/// 旋蒸中
			/// </summary>
			[Description("旋蒸中")]
			Evaporating = 5,

			/// <summary>
			/// 停止旋转
			/// </summary>
			[Description("停止旋转")]
			StopRotation = 6,

			/// <summary>
			/// 释放真空
			/// </summary>
			[Description("释放真空")]
			ReleaseVacuum = 7,

			/// <summary>
			/// 冷却
			/// </summary>
			[Description("冷却")]
			Cooling = 8,

			/// <summary>
			/// 完成旋蒸过程
			/// </summary>
			[Description("完成旋蒸过程")]
			Complete = 9
		}

		/// <summary>
		/// 产物收集分步骤
		/// </summary>
		public enum ProductCollectionSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 取收集瓶
			/// </summary>
			[Description("取收集瓶")]
			PickCollectionBottle = 1,

			/// <summary>
			/// 安装收集瓶
			/// </summary>
			[Description("安装收集瓶")]
			InstallCollectionBottle = 2,

			/// <summary>
			/// 收集产物
			/// </summary>
			[Description("收集产物")]
			CollectProduct = 3,

			/// <summary>
			/// 移除收集瓶
			/// </summary>
			[Description("移除收集瓶")]
			RemoveCollectionBottle = 4,

			/// <summary>
			/// 放回收集瓶
			/// </summary>
			[Description("放回收集瓶")]
			ReturnCollectionBottle = 5,

			/// <summary>
			/// 完成产物收集
			/// </summary>
			[Description("完成产物收集")]
			Complete = 6
		}

		/// <summary>
		/// 残留液处理分步骤
		/// </summary>
		public enum ResidueHandlingSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 解锁旋蒸瓶
			/// </summary>
			[Description("解锁旋蒸瓶")]
			UnlockFlask = 1,

			/// <summary>
			/// 移除旋蒸瓶
			/// </summary>
			[Description("移除旋蒸瓶")]
			RemoveFlask = 2,

			/// <summary>
			/// 取残留液瓶
			/// </summary>
			[Description("取残留液瓶")]
			PickResidueBottle = 3,

			/// <summary>
			/// 倒入残留液
			/// </summary>
			[Description("倒入残留液")]
			PourResidue = 4,

			/// <summary>
			/// 放回残留液瓶
			/// </summary>
			[Description("放回残留液瓶")]
			ReturnResidueBottle = 5,

			/// <summary>
			/// 放回旋蒸瓶
			/// </summary>
			[Description("放回旋蒸瓶")]
			ReturnFlask = 6,

			/// <summary>
			/// 完成残留液处理
			/// </summary>
			[Description("完成残留液处理")]
			Complete = 7
		}

		/// <summary>
		/// 系统清洗分步骤
		/// </summary>
		public enum SystemCleaningSubStep
		{
			/// <summary>
			/// 初始化
			/// </summary>
			[Description("初始化")]
			Initialize = 0,

			/// <summary>
			/// 取清洗液瓶
			/// </summary>
			[Description("取清洗液瓶")]
			PickCleaningBottle = 1,

			/// <summary>
			/// 连接清洗管路
			/// </summary>
			[Description("连接清洗管路")]
			ConnectCleaningTube = 2,

			/// <summary>
			/// 输送清洗液
			/// </summary>
			[Description("输送清洗液")]
			TransferCleaningLiquid = 3,

			/// <summary>
			/// 清洗循环
			/// </summary>
			[Description("清洗循环")]
			CleaningCycle = 4,

			/// <summary>
			/// 排出废液
			/// </summary>
			[Description("排出废液")]
			DrainWaste = 5,

			/// <summary>
			/// 断开清洗管路
			/// </summary>
			[Description("断开清洗管路")]
			DisconnectCleaningTube = 6,

			/// <summary>
			/// 放回清洗液瓶
			/// </summary>
			[Description("放回清洗液瓶")]
			ReturnCleaningBottle = 7,

			/// <summary>
			/// 完成系统清洗
			/// </summary>
			[Description("完成系统清洗")]
			Complete = 8
		}

		/// <summary>
		/// 同步步骤
		/// </summary>
		public enum SynchronousStep
		{
			/// <summary>
			/// 无步骤
			/// </summary>
			[Description("无步骤")]
			None = 0,

			/// <summary>
			/// 温度控制
			/// </summary>
			[Description("温度控制")]
			TemperatureControl = 1,

			/// <summary>
			/// 旋转控制
			/// </summary>
			[Description("旋转控制")]
			RotationControl = 2,

			/// <summary>
			/// 真空控制
			/// </summary>
			[Description("真空控制")]
			VacuumControl = 3,

			/// <summary>
			/// 机械手控制
			/// </summary>
			[Description("机械手控制")]
			RobotArmControl = 4,

			/// <summary>
			/// 液位监测
			/// </summary>
			[Description("液位监测")]
			LevelMonitoring = 5,

			/// <summary>
			/// 压力监测
			/// </summary>
			[Description("压力监测")]
			PressureMonitoring = 6,

			/// <summary>
			/// 流量控制
			/// </summary>
			[Description("流量控制")]
			FlowControl = 7,

			/// <summary>
			/// 安全监测
			/// </summary>
			[Description("安全监测")]
			SafetyMonitoring = 8
		}

		/// <summary>
		/// 设备运行时间类型
		/// </summary>
		public enum DeviceTimeType
		{
			/// <summary>
			/// 总运行时间
			/// </summary>
			[Description("总运行时间")]
			TotalRunTime = 0,

			/// <summary>
			/// 当前实验运行时间
			/// </summary>
			[Description("当前实验运行时间")]
			CurrentExperimentRunTime = 1,

			/// <summary>
			/// 当前步骤运行时间
			/// </summary>
			[Description("当前步骤运行时间")]
			CurrentStepRunTime = 2,

			/// <summary>
			/// 当前分步骤运行时间
			/// </summary>
			[Description("当前分步骤运行时间")]
			CurrentSubStepRunTime = 3,

			/// <summary>
			/// 上次维护时间
			/// </summary>
			[Description("上次维护时间")]
			LastMaintenanceTime = 4,

			/// <summary>
			/// 上次校准时间
			/// </summary>
			[Description("上次校准时间")]
			LastCalibrationTime = 5
		}

		/// <summary>
		/// 机械手状态
		/// </summary>
		public enum RobotArmStatus
		{
			/// <summary>
			/// 空闲
			/// </summary>
			[Description("空闲")]
			Idle = 0,

			/// <summary>
			/// 移动中
			/// </summary>
			[Description("移动中")]
			Moving = 1,

			/// <summary>
			/// 抓取中
			/// </summary>
			[Description("抓取中")]
			Gripping = 2,

			/// <summary>
			/// 释放中
			/// </summary>
			[Description("释放中")]
			Releasing = 3,

			/// <summary>
			/// 旋转中
			/// </summary>
			[Description("旋转中")]
			Rotating = 4,

			/// <summary>
			/// 错误
			/// </summary>
			[Description("错误")]
			Error = 5,

			/// <summary>
			/// 初始化中
			/// </summary>
			[Description("初始化中")]
			Initializing = 6,

			/// <summary>
			/// 校准中
			/// </summary>
			[Description("校准中")]
			Calibrating = 7,

			/// <summary>
			/// 已抓取
			/// </summary>
			[Description("已抓取")]
			Gripped = 8,

			/// <summary>
			/// 已释放
			/// </summary>
			[Description("已释放")]
			Released = 9
		}

		/// <summary>
		/// 设备组件类型
		/// </summary>
		public enum DeviceComponentType
		{
			/// <summary>
			/// 油浴
			/// </summary>
			[Description("油浴")]
			OilBath = 0,

			/// <summary>
			/// 冷凝器
			/// </summary>
			[Description("冷凝器")]
			Condenser = 1,

			/// <summary>
			/// 旋转电机
			/// </summary>
			[Description("旋转电机")]
			RotationMotor = 2,

			/// <summary>
			/// 真空泵
			/// </summary>
			[Description("真空泵")]
			VacuumPump = 3,

			/// <summary>
			/// 机械手
			/// </summary>
			[Description("机械手")]
			RobotArm = 4,

			/// <summary>
			/// 液位传感器
			/// </summary>
			[Description("液位传感器")]
			LevelSensor = 5,

			/// <summary>
			/// 压力传感器
			/// </summary>
			[Description("压力传感器")]
			PressureSensor = 6,

			/// <summary>
			/// 温度传感器
			/// </summary>
			[Description("温度传感器")]
			TemperatureSensor = 7,

			/// <summary>
			/// 流量传感器
			/// </summary>
			[Description("流量传感器")]
			FlowSensor = 8,

			/// <summary>
			/// 蠕动泵
			/// </summary>
			[Description("蠕动泵")]
			PeristalticPump = 9,

			/// <summary>
			/// 电磁阀
			/// </summary>
			[Description("电磁阀")]
			Solenoid = 10,

			/// <summary>
			/// 条码扫描器
			/// </summary>
			[Description("条码扫描器")]
			BarcodeScanner = 11
		}
	}
}